/**
 * @description 椅子数计算器逻辑实现
 * @author jiangxiaobo
 */
var oVue; // 全局数据模型
window.onload = function(){
	/**
	 * 初始化 【构建数据模型+键盘事件】
	 */
	// 数据模型
	oVue = new Vue({
		el : '#app',
		data : {
			result : '', // 用于显示结果
			// option_a : '', // 操作数a
			// option_b : '', // 操作数b
			eqFlag : false, // 是否等于
			appendFlag : true // 是否第一次追加椅子数
		},
		methods : {
			option : function(num){
				var self = this;
				if(self.eqFlag){
					self.eqFlag = false;
					self.result = '';
				}
				if(self.result=='00'){
					self.result = '0';
				}else if(!/^0×/.test(self.result)){
					self.result = self.result.replace(/^0/g,'');
				}
				self.result+=num;
			},
			xoption : function(xnum){
				var self = this;
				if(self.eqFlag){
					self.eqFlag = false;
					self.result = '';
				}
				if(!self.result)return;
				if(self.appendFlag){
					// 如果是第一次
					self.appendFlag = false;
					self.result+='×1'+xnum;
				}else{
					self.result+=xnum;
				}
			},
			eq : function(){
				var self = this,arr = self.result.split('×');
				if(arr.length==1){
					return ;
				}else if(arr.length==2){
					self.result = BIO.multiply(arr[0],arr[1]);
					var len = self.result.length;
					if(len>14){
						self.result = self.result.replace(/^(\d)(\d{14})(\d*)/g,'$1.$2e^'+(len-1));
					}
					// 还原状态
					self.appendFlag = true;
					self.eqFlag = true;
				}

			}
		},
		computed : {
			// 结果区域字体大小
			fontSize : function(){
				var self = this,len = self.result.length;
				if(len>=20 && len<43){
					return '1.4rem';
				}else if(len>=43 && len<67){
					return '1.3rem';
				}else if(len>=67 && len<97){
					return '1.2rem';
				}else if(len>=97 && len<109){
					return '1.1rem';
				}else if(len>=109 && len<146){
					return '1rem';
				}else if(len>=146 && len<166){
					return '0.9rem';
				}else if(len>=166 && len<186){
					return '0.8rem';
				}else if(len>=186 && len<211){
					return '0.7rem';
				}else if(len>=211 && len<246){
					return '0.6rem';
				}else if(len>=246){
					return '0.5rem';
				}else {
					return '1.5rem';
				}
			}
		},
		watch : {

		}
	});

	// 键盘事件
	document.onkeydown = function(event){
		var e = event || window.event || arguments.callee.caller.arguments[0];
		if(!e)return;
		/**
		 * 0 - 96
		 * 1 - 97
		 * 2 - 98
		 * 3 - 99
		 * 4 - 100
		 * 5 - 101
		 * 6 - 102
		 * 7 - 103
		 * 8 - 104
		 * 9 - 105
		 */
		var keyCode = parseInt(e.keyCode);
		if(keyCode>=96 && keyCode<=105){
			// 数字
			// alert(keyCode-96);
			oVue.option(keyCode-96);
		}else if(keyCode == 13){
			// 回车
			// alert('回车');
			oVue.eq();
		}else if(keyCode == 90){
			// z
			// alert('z Z');
			oVue.xoption('01'); // x101
		}else if(keyCode == 88){
			// x
			// alert('x X');
			oVue.xoption('001'); // x1001
		}else if(keyCode == 67){
			// c
			// alert('c C');
			oVue.xoption('0001'); // x10001
		}
	};
};